package com.anpy.management.service;

import com.anpy.management.entity.ProjectEntity;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 项目服务接口
 */
public interface ProjectService extends IService<ProjectEntity> {

    /**
     * 创建项目
     * @param projectEntity 项目信息
     * @return 是否成功
     */
    boolean createProject(ProjectEntity projectEntity);

    /**
     * 更新项目
     * @param projectEntity 项目信息
     * @return 是否成功
     */
    boolean updateProject(ProjectEntity projectEntity);

    /**
     * 删除项目
     * @param projectId 项目ID
     * @return 是否成功
     */
    boolean deleteProject(Integer projectId);

    /**
     * 获取项目详情
     * @param projectId 项目ID
     * @return 项目信息
     */
    ProjectEntity getProject(Integer projectId);

    /**
     * 获取用户的所有项目
     * @param userId 用户ID
     * @return 项目列表
     */
    List<ProjectEntity> getUserProjects(Long userId);

    /**
     * 分页查询用户项目
     * @param page 页码
     * @param size 每页大小
     * @param userId 用户ID
     * @param projectType 项目类型（可选）
     * @param languageType 语言类型（可选）
     * @param projectStatus 项目状态（可选）
     * @param projectName 项目名称（可选，模糊查询）
     * @return 分页结果
     */
    Page<ProjectEntity> getUserProjectsByPage(int page, int size, Integer userId, 
                                              String projectType, String languageType, 
                                              String projectStatus, String projectName);
}
